<?php
/**
 * 生成随机字符串
 * @param $length  生成长度
 * @param int $numeric  0 有英文 、 1 纯数字
 * @return string
 */
function random($length, $numeric = 0) {
	$seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
	$seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
	if ($numeric) {
		$hash = '';
	} else {
		$hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
		$length--;
	}
	$max = strlen($seed) - 1;
	for ($i = 0; $i < $length; $i++) {
		$hash .= $seed{mt_rand(0, $max)};
	}
	return $hash;
}

/**
 * 检查密码长度是否符合规定，密码长度6-20位
 *
 * @param STRING $password
 * @return 	TRUE or FALSE
 */
function is_password($password) {
	$strlen = strlen($password);
	if ($strlen >= 6 && $strlen <= 20) return true;
	return false;
}

/**
 * 检测输入中是否含有不允许的特殊字符
 *
 * @param char $string 要检查的字符串名称
 * @return TRUE or FALSE
 */
function is_badword($string) {
	$badwords = array("\\",'&',' ',"'",'"','/','*',',','<','>',"\r","\t","\n","#");
	foreach ($badwords as $value) {
		if (strpos($string, $value) !== FALSE) {
			return TRUE;
		}
	}
	return FALSE;
}

/**
 * 检查用户名是否符合规定（ 3-20位英文数字组成）
 *
 * @param STRING $username 要检查的用户名
 * @return 	TRUE or FALSE
 */
function is_username($username) {
	$strlen = strlen($username);
	if (is_badword($username) || !preg_match("/^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$/", $username)) {
		return false;
	} elseif ( 20 < $strlen || $strlen < 3 ) {
		return false;
	}
	return true;
}

/**
 * 邮箱合法校验
 * @createtime 2014-07-22
 * @author:Halu
 * @param string $email 待验证邮箱
 * @return boolean 合法返回True,否则返回false
 */
function isEmail($email){
	if (!$email || !is_string($email)) {
		return false;
	}
	$preg = '/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([_a-z0-9]+\.)+[a-z]{2,5}$/';
	return preg_match($preg,$email)?true:false;
}

/**
 * 手机号码校验
 * @createtime 2014-07-22
 * @author:Halu
 * @param string $mobile 待验证手机号码
 * @return boolean 合法返回True,否则返回false
 */
function isMobile($mobile){
	if(!$mobile || !is_numeric($mobile)){
		return false;
	}
	$preg = '/^((\(\d{2,3}\))|(\d{3}\-))?1[3|4|5|7|8]\d{9}$/';
	return preg_match($preg,$mobile)?true:false;
}


/**
 * URL合法校验(常见域名)
 * @createtime 2014-07-22
 * @author:Halu
 * @param string $url 待验证URL
 * @return boolean 合法返回True,否则返回false
 */
function isUrl($url){
	if(!$url || !is_string($url)){
		return false;
	}
	$preg = '/^(http[s]?:)?(\/{2})?([a-z0-9_\-]+\.)?([a-z0-9_\-]+\.)?([a-z0-9_\-]+\.)?([a-z0-9_\-]+\.)?[a-z0-9_\-]+(\.(com|cn|me|info|co|so|net\.cn|org\.cn|biz|name|tv|asia|tel|lu|mobi|cc|org|net|com\.cn))+(.*)$/i'; // 可允许4级
	return preg_match($preg,$url)?true:false;
}

/**
 * kineditor内部排序，该函数非外部调用
 * @param unknown $a
 * @param unknown $b
 * @return number
 */
function kineditor_cmp_func($a, $b) {
	// name or size or type
	$order = $GLOBALS['kindeditor_order']?$GLOBALS['kindeditor_order']:'name';
	
	if ($a['is_dir'] && !$b['is_dir']) {
		return -1;
	} else if (!$a['is_dir'] && $b['is_dir']) {
		return 1;
	} else {
		if ($order == 'size') {
			if ($a['filesize'] > $b['filesize']) {
				return 1;
			} else if ($a['filesize'] < $b['filesize']) {
				return -1;
			} else {
				return 0;
			}
		} else if ($order == 'type') {
			return strcmp($a['filetype'], $b['filetype']);
		} else {
			return strcmp($a['filename'], $b['filename']);
		}
	}
}

/**
 * 遍历获取目录下的指定类型的文件,ueditor内部调用
 * @param $path
 * @param array $files
 * @return array
 */
function ueditor_getfiles($path, $allowFiles, &$files = array()) {
	if (!is_dir($path)) return null;
	if(substr($path, strlen($path) - 1) != '/') $path .= '/';
	$handle = opendir($path);
	while (false !== ($file = readdir($handle))) {
		if ($file != '.' && $file != '..') {
			$path2 = $path . $file;
			if (is_dir($path2)) {
				ueditor_getfiles($path2, $allowFiles, $files);
			} else {
				if (preg_match("/\.(".$allowFiles.")$/i", $file)) {
					$files[] = array(
						'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])),
						'mtime'=> filemtime($path2)
					);
				}
			}
		}
	}
	return $files;
}


//递归创建目录
/*
 *@param string $dir
 */
function mkDirs($dir){
    if(!is_dir($dir)){
        if(!mkDirs(dirname($dir))){
            return false;
        }
        if(!mkdir($dir,0777)){
            return false;
        }
    }
    return true;
}

//根据数组检验是否空数据
function check_data($data,$all){
	//循环数据
	foreach($data as $v){
		if(array_key_exists($v,$all) === false){
			return false;
		}
	}
	return true;
}


/*********************************************************************
	函数名称:encrypt
	函数作用:加密解密字符串
	使用方法:
	加密     :encrypt('str','E','nowamagic');
	解密     :encrypt('被加密过的字符串','D','nowamagic');
	参数说明:
	$string   :需要加密解密的字符串
	$operation:判断是加密还是解密:E:加密   D:解密
	$key      :加密的钥匙(密匙);
*********************************************************************/
function wgw_encrypt($string,$operation,$key='nangua'){
	$key=md5($key);
	$key_length=strlen($key);
	$string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;
	$string_length=strlen($string);
	$rndkey=$box=array();
	$result='';
	for($i=0;$i<=255;$i++)
	{
		$rndkey[$i]=ord($key[$i%$key_length]);
		$box[$i]=$i;
	}
	for($j=$i=0;$i<256;$i++)
	{
		$j=($j+$box[$i]+$rndkey[$i])%256;
		$tmp=$box[$i];
		$box[$i]=$box[$j];
		$box[$j]=$tmp;
	}
	for($a=$j=$i=0;$i<$string_length;$i++)
	{
		$a=($a+1)%256;
		$j=($j+$box[$a])%256;
		$tmp=$box[$a];
		$box[$a]=$box[$j];
		$box[$j]=$tmp;
		$result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));
	}
	if($operation=='D')
	{
		if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8))
		{
			return substr($result,8);
		}
		else
		{
			return'';
		}
	}
	else
	{
		return str_replace('=','',base64_encode($result));
	}
}


/**
 * 获取省份
 */
function getProvince(){
	$province = S('province');
	if (empty($province)) {
		$province = M('Area')->cache(true)->where(array('parent_id'=>0))->order('sort asc')->select();
		S('province',$province);
	}
	return $province;
}

/**
 * 获取市
 */
function getCity($province = 0){
	if (!$province) {
		return false;
	}
	$city = S('city_'.$province);
	if (empty($city)) {
		$city = M('Area')->cache(true)->where(array('parent_id'=>$province))->order('sort asc')->select();
		S('city_'.$province,$city);
	}
	return $city;
}

/**
 * 获取县/区
 */
function getCounty($city = 0){
	if (!$city) {
		return false;
	}
	$county = S('county_'.$city);
	if (empty($county)) {
		$county = M('Area')->cache(true)->where(array('parent_id'=>$city))->order('sort asc')->select();
		S('county_'.$city,$county);
	}
	return $county;
}

/**
 * 判断字符串中是否含有中文
 * @param string $str 待检测字符串
 * @return bool
 */
function check_chinese($str){
	if (preg_match('/^[A-Za-z0-9]+$/', $str)) {
		return true;
	} else {
		return false;
	}
}

/**
 * 判断字符串中是否只是英文数字
 * @param string $str 待检测字符串
 * @return bool
 */
function isEnglish($str){
	if (preg_match('/^[A-Za-z0-9]+$/', $str)) {
		return true;
	}else{
		return false;
	}
}


/**
 * 记录支付编码
 * 生成支付单编号(两位随机 + 从2000-01-01 00:00:00 到现在的秒数+微秒+会员ID%1000)，该值会传给第三方支付接口
 * 长度 =2位 + 10位 + 3位 + 3位  = 18位
 * 1000个会员同一微秒提订单，重复机率为1/100
 * @param int $fans_id
 * @return int/bool 插入自增ID/false
 */
function insertPaysn($uid) {
	
	if(empty($uid)){
		return false;
	}

	$pay_sn = mt_rand(10,99)
	. sprintf('%010d',time() - 946656000)
	. sprintf('%03d', (float) microtime() * 1000)
	. sprintf('%03d', (int) $uid % 1000);

	$add = array(
			'pay_sn' => $pay_sn,
			'uid' => $uid,
			'createtime'=>NOW_TIME
	);
	$ac = M('UserPaysn')->add($add);
	return $ac;
}

/**
 * 直接请求，返回条件链接
 * $fans_id			会员主键id
 * $order_id		等待付款订单主键id
 * $price			请求支付金额
 * $title			请求支付标题
 * $payment			请求支付类型	
 * $module			请求支付模块
 * $pay_sn_id       支付编码主键id
 * return url		返回跳转链接
 * 
 */

function sendpay_url($uid, $order_id, $price, $title, $payment, $module, $pay_sn_id,$level){

	$paylog = array(
		'uid'=>$uid,
		'order_id'=>$order_id,
		'pay_sn_id' =>$pay_sn_id,
		'module'=>$module,
		'status'=>0,
		'createtime'=>NOW_TIME,

	);
	
	//每次进入请求插入流水
	$paylogid = M('PayLog')->add($paylog);
	
	if(empty($paylogid)){
		return false;
	}
		
	//引用对应的支付模块
	Vendor("Payment.{$payment}.payment");
	
	//传入初始值
	/*
		//$paymentinfo 支付参数
		//$orderinfo	请求支付参数
	*/
	
	//$paymentinfo = C('PAYMENT_SETTING');//配置文件用于测试
	if($payment == 'wxpay'){
		$payment_info = 'wx_pay';
	}else{
		$payment_info = $payment;
	}
	
	//用户设置支付模式
	$paymentcontent = M('Options')->where(array('option_name'=>strtolower($payment_info)))->getField('option_value');
	
	if(empty($paymentcontent)){
		exit("商家没有开通支付");
	}
	$paymentinfo = unserialize($paymentcontent); 
	
	//搜索paysn
	$pay_sn = M('user_paysn')->where("id = '{$pay_sn_id}'")->getField('pay_sn');
	
	$orderinfo = array(
		'title'=>$title,
		'fee'=>$price,
		'trade_no'=>$pay_sn,
		'uid'=>$uid,
	);
	
	if($payment == 'alipay'){
		$payment_type = '2';
	}else if($payment == 'wxpay'){
		$payment_type = '1';
	}

	//该升级的套餐的月份数
	$valid_time = M('Level')->where(array('level_id'=>$level))->field('valid_time')->getField('valid_time');

	//该商家原本到期时间
	$previous_time = M('User')->where(array('id'=>$uid))->getField('valid_time');
	
	//正确的商家升级记录
	$upgrade_data = array(
		'pay_type'=>$payment_type,
		'pay_amount'=>$price,
		'user_id'=>$uid,
		'createtime'=>NOW_TIME,
		'pay_sn'=>$pay_sn,
		'upgrade_level'=>$level,
		'valid_time'=>$valid_time,
		'previous_time'=>$previous_time
	);
	
	//用户升级支付记录表
	M('UserUpgradeLog')->add($upgrade_data);
	
	$payment_api= new $payment($paymentinfo,$orderinfo);
	
	return $payment_api->get_payurl();
	
}

/**
 * 调试性输出字符或数组
 * @param mix $data 打印输出的内容
 * @param int  $type 0-echo输出字符串，print_r输出数组，否则使用var_dump打印字符串/数组
 * @param bool $pre true格式化输出
 * @param bool $break true输出内容后exit中断程序
 */
function p($data,$type=0,$pre=true,$break=true){

	if(is_string($data) || is_int($data)){
			
		if($type == 0){
			echo $data;
		}else{
			var_dump($data);
		}
			
	}else if(is_array($data)){
			
		if($pre){
			echo '<pre>';
			if($type == 0){
				print_r($data);
			}else{
				var_dump($data);
			}
			echo '</pre>';
		}else{
			if($type == 0){
				print_r($data);
			}else{
				var_dump($data);
			}
		}
			
	}else{
		if($pre){
			echo '<pre>';
			if($type == 0){
				print_r($data);
			}else{
				var_dump($data);
			}
			echo '</pre>';
		}else{
			if($type == 0){
				print_r($data);
			}else{
				var_dump($data);
			}
		}
	}

	if($break){
		exit();
	}
}

/**
 * 获取会员等级列表
 * @param bool isSimple 简单模式 (默认 false)
 *                    {1=>至尊,2=>钻石}
 * @param int leve_id 获取单个会员id详情
 * @return 返回会员等级列表数组 (默认返回完整会员等级数据)
 */
function getMemberLevelList($isSimple,$leve_id) 
{
	// 数据库 查询 level 表全部
	// $rs = M('level')->select();
	
	if($leve_id){
		$where  = array('level_id' => $leve_id);
	}
	$rs = M('level')->where($where)->select();

	$list = array();
	foreach ($rs as $row) {
		// 根据模式返回
		$list[$row['level_id']] = $isSimple ? $row['level_name'] : $row;
 	}

 	// 简单模式加入非会员
 	if ($isSimple) {
 		$list[0] = '非会员';
 	}

 	return $list;
}


  /**
 * 发送短信 
 * @param int $mobile  发送到手机号码
 * @param int $content 发送到内容（与短信接口模板一致）
 * @param bool $return 是否需要返回数据
 * @return mixed
 */
function sendSMS($mobile,$content,$return = false){
    if(!$mobile || !$content){
        return false;
    }
    $on_off = C('SENDMOBILECODE.switch');
    if(empty($on_off)){
    	return false;
    }
    $account  = C('SENDMOBILECODE.account');
    $password = C('SENDMOBILECODE.password');
    //$post_data = "account={$account}&password={$password}&mobile=".$mobile."&content=".rawurlencode($content);  
    $content = iconv("UTF-8","GBK", $content); 
    $target = "http://Sms.weinaduo.net/send/gsend.aspx?name={$account}&pwd={$password}&dst={$mobile}&msg={$content}";

    //查询余额
    //$target = "http://Sms.weinaduo.net//send/getfee.aspx?name={$account}&pwd={$password}";

    $curl = new \Org\Util\Curl;
	$postcont = $curl->postRequest($target);

    //返回格式 num=1&success=18126788811,&faile=&err=发送成功&errid=0
    $content = iconv('GBK', 'UTF-8', $postcont);
    
    if($return){
    	$expload = explode('&', $content);
    	$pamet = array();
    	foreach($expload as $k=>$v){
    		$toarray = explode('=', $v);
    		$pamet[$toarray[0]] = $toarray[1];
    		
    	}
    	$sendsmstype = false;
    	if($pamet['err'] === '发送成功'){

    		$sendsmstype = true;
    	}
    	return $sendsmstype;
    }
}


/**
 * 2014年9月2日
 * 读取xml格式. XML转数组
 */
function xml_to_array($xml){
	$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";
	if(preg_match_all($reg, $xml, $matches)){
		$count = count($matches[0]);
		for($i = 0; $i < $count; $i++){
		$subxml= $matches[2][$i];
		$key = $matches[1][$i];
			if(preg_match( $reg, $subxml )){
				$arr[$key] = xml_to_array( $subxml );
			}else{
				$arr[$key] = $subxml;
			}
		}
	}
	return $arr;
}


/**
* 信息中心
* 2015年9月18日
*@parme uid
*@parme type 1:提现信息,2:佣金信息
*@parme result 数据
*/
function information_content($uid, $type, $result){
    if(empty($uid) and empty($type) and empty($result)){
       die('缺少参数'); 
    }
    
    $content = '';
    
    switch($type){
        case 1:
            switch($result['paytype']){
                case 1:
                    $content .= '银行卡方式提现，提现的金额'.$result['money']."元,已申请成功，请等待审核!";
                    break;
                case 2:
                    $content .= '支付宝方式申请提现, 提现的金额'.$result['money']."元,已申请成功，请等待审核!";
                    break;
            }
            break;
        case 2:
			//uid,当前会员id
            $username = M('User')->where(array("id"=>$uid))->field("username")->find();
			//取两位
			$commission = $result['commission']/100;
			//$commission = round($result['commission']/100,2);
            $content .= '你从'.$username['username'].'获得了'.$commission.'元佣金';
            break;
        case 3:
        	switch($result['paytype']){
                case 1:
                    $content .= '银行卡方式提现，提现的金额'.$result['money']."元,已申请成功，请捡收!";
                    break;
                case 2:
                    $content .= '支付宝方式申请提现, 提现的金额'.$result['money']."元,已申请成功，请捡收!";
                    break;
            }
            break;
    }
	
	//判断类型
    if($type == '2'){
		//parent_id上级id
		$data = array(
			'uid'=>$result['parent_id'],
			'type'=>$type,
			'content'=>$content,
			'createtime'=>NOW_TIME,
		);
     }else{
		$data = array(
			'uid'=>$uid,
			'type'=>$type,
			'content'=>$content,
			'createtime'=>NOW_TIME,
		);
		
	 }
    M('Infomoation')->add($data);     
} 

//判断是否是微信端
function is_weixin(){ 
	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
		return true;
	}	
	return false;
}

//提示方法
function prompt(){
	header("Content-type: text/html; charset=utf-8");
	// echo "<script>alert('非会员无权限使用该功能，请升级会员');window.history.go(-1)</script>";
	echo "<script>alert('非会员无权限使用该功能，请升级会员');window.location.href='".U('Home/User/upgrade')."'</script>";
}



/*
	微信会员头像获取下载到本地
*/
function get_wechat_avatarImage($url,$filename=''){
	
    if($url==''){return false;}
	$file = './Uploads/wechat_avatar';
    if($filename==''){
        $ext=strrchr($url,'.');
        if($ext!='.gif' && $ext!='.jpg'){return false;}
        $filename=time().$ext;
    }
    //文件保存路径 
   
	$ch=curl_init();
	$timeout=100;
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
	$img=curl_exec($ch);
	curl_close($ch);
    $size=strlen($img);

	//创建目录
	$year = date('Y');
	$month = date('m');
	if(!is_dir($file.'/'.$year)) {
		mkdir($file.'/'.$year, 0777, true);
	}
	if(!is_dir($file.'/'.$year.'/'.$month)) {
		mkdir($file.'/'.$year.'/'.$month, 0777, true);
	}

	$fp2=@fopen($file.'/'.$year.'/'.$month.'/'.$filename,'w');
	fwrite($fp2,$img);
	fclose($fp2);
	
	$array[0] = 'wechat_avatar/'.$year.'/'.$month.'/'.$filename;
	$array[1] = $file.'/'.$year.'/'.$month.'/'.$filename;
	
	import('Vendor.photoCompression.photo');
	//压缩图片
	imagezoom($array[1],$array[1],'640','640');
    return $array;
}


/**
 *
 * 检查微站会员是否登陆
 * $weid 微信主键id
 * $jump  true 没登陆跳转 ，false 没登陆不跳转返回false
 */
function webchecklogin(){
	$wx_password = $_COOKIE['wx_password'];
	if ($wx_password) {
		$decode = wgw_encrypt($wx_password,'D','accredit');
	}

	$jumpLogin = false;
	if($decode) {
		$fans_wx_info = M('UserWxInfo')->where(" id = '{$decode}'")->field('id,uid')->find();
		if(empty($fans_wx_info)){
			$jumpLogin = true;
		}
	} else {
		$jumpLogin = true;
	}

	if($jumpLogin) {
		$back_url = "http://". $_SERVER['HTTP_HOST'] . U(null,$_GET);

		session('back_url',$back_url);		
		header("location:".U('Fans/Login/Index'));die;
		
	} else {
		
		return $fans_wx_info;
	}

}



/*生成带参数二维码，返回二维码图片地址*/
/*function create_qrcode($uid){
	if(empty($uid)){
		return false;
	}

	//生成链接
	import('Vendor.Wechat.access');
    $wechat = new \WechatAccess();
    $genurl = $wechat->getqrcode($uid);

    //生成二维码
    Vendor('Wechat.paramCode');

	$filename = NOW_TIME.$uid.'.jpg';
	$genurl = urldecode($genurl);
	savecode($genurl,$filename);
	$code = '/Uploads/paramcode/qrcode'.$filename;

	return $code;
}*/

/*
 *
 * 生成带参数二维码，返回二维码图片地址
 * @param int $uid 会员id
 * @param bool $true 是否需要生成图片
 * */
function create_qrcode($uid,$true = false){
	if(empty($uid)){
		return false;
	}
	//qrcode31_77.jpg 获取时间
	$filename = 'qrcode_'.$uid.'.jpg';
	//返回路径
	$code = '/Uploads/paramcode/qrcode/'.$filename;
	//修改时间
	$altertime = filemtime("Uploads/paramcode/qrcode/".$filename);
	//没有超过29天，返回路径

	//返回(用于本地调试，不然每次请求微信生成二维码会降低效率)
	if(($altertime+2505600) > NOW_TIME && !empty($altertime) && $true){
		return $code;exit();
	}

	//生成链接
	import('Vendor.Wechat.access');
	$wechat = new \WechatAccess();
	$genurl = $wechat->getqrcode($uid);
	//true生成图片
	if($true){
		//生成二维码
		Vendor('Wechat.paramCode');

		$genurl = urldecode($genurl);
		savecode($genurl,$filename);
		//生成图片
		return $code;
	}else{
		//微信链接用于显示微信二维码
		return $genurl;
	}

}


/**
 *  //检测文本长度是否超过了$lenth,超过就返回false $length 为0的时候，默认不检测
 * @param string $content 文本内容 
 * @param int    $length  长度
 *
 */
 
 function check_content_length($content,$length = 0){
	 if(empty($length)){
		 return true;
	 }
	 
	 //求出长度
	 $check_length = mb_strlen($content,'UTF8');
	 
	 if($check_length > $length){
		 return false;
	 }else{
		 return true;
	 }
	 
 }

  /**
 *  检测url是否有http,没有就加上http
 *  @param string $url
 *  @return string 链接
 *
 */
function check_http($url){
	if(empty($url)){
		return false;
	}
	
	//拼装链接
	if(strpos($url,'http') === false){
		$url = 'http://'.$url;
	}
	return $url;
}

/**
 * 获取启用中的权限列表
 * @return array $right 权限列表数组
 */
function getPermission(){
	static $right = array();
	if (empty($right)) {
		$tmp = M('Permission')->where(array('status'=>1))->order('taxis desc,id asc')->select();
		if (!empty($tmp)) {
			foreach ($tmp as $k=>$v) {
				$right[$v['group']][$v['id']] = $v;
			}
		}
	}
	return $right;
}

/**
 * 权限校验
 * @param string $action 操作的控制器方法
 * @return bool 有权限返回true,无权限返回false
 */
function check_permission($action){
	$uid = session('uid');
	
	if (!$uid) {
		return false;
	}
	
	// 神
	if ($uid == C('ADMIN_ID')) {
		return true;
	}
	// 权限判断
	$role_right = session('role_right');
	
	if (empty($role_right)) {
		return false;
	}
	
	
	
	//不权限判断(编辑器)
	$action_array = explode('/',$action);
	if($action_array[3] == 'Editor'){
		return true;
	}
	
	//统一小写，防止出现大小问题
	$action = strtolower($action);
	
	//另一个个显示
	if($action.'.'.C('URL_HTML_SUFFIX') == '/index.php/admin/index/index.'.C('URL_HTML_SUFFIX')){
		return true;
	}
	
	if (in_array($action.'.'.C('URL_HTML_SUFFIX'),$role_right)) {
		return true;
	}
	return false;
}


/**
 * 权限校验(只用于首页显示注册会员个数的判断)
 * @param string $action 操作的控制器方法
 * @return bool 有权限返回true,无权限返回false
 */
function index_check_permission($action){
	$uid = session('uid');
	
	if (!$uid) {
		return false;
	}
	
	// 神
	if ($uid == C('ADMIN_ID')) {
		return true;
	}
	// 权限判断
	$role_right = session('role_right');
	
	if (empty($role_right)) {
		return false;
	}
	
	//统一小写，防止出现大小问题
	$action = strtolower($action);
	
	if (in_array($action.'.'.C('URL_HTML_SUFFIX'),$role_right)) {
		return true;
	}
	return false;
}

//组装展示iframe的链接(目前只用于iframe)
function display_compose_iframe($url,$type){
	if(empty($url) || empty($type)){
		return false;
	}
	if($type == 'qq'){
		$explode     = explode('?',$url); 
		$explode_two = explode('=',$explode[1]);
		$qq_url = 'http://v.qq.com/iframe/player.html?vid='.$explode_two[1].'&tiny=0&auto=0';
		return $qq_url;
	}else if($type == 'tudou'){
		$explode     = explode('.html',$url); 
		$explode_two = explode('/',$explode[0]);
		$count       = count($explode_two);
		$tudou_url   = 'http://www.tudou.com/programs/view/html5embed.action?code='.$explode_two[$count-1].'&lcode='.$explode_two[$count-2].'';
		return $tudou_url;
	}else if($type == 'youku'){
		$explode       = explode('.html',$url);
		$explode_two   = explode('/',$explode[0]);
		$count         = count($explode_two);
		$explode_three = explode('_',$explode_two[$count-1]);
		$youku_url  = 'http://player.youku.com/embed/'.$explode_three[1].'';
		return $youku_url;
	}
	
}

/**
 * 返回URL的参数数组
 * @param    string    urlStr
 * @return    array    params
 */
function convertUrlQuery($query){
    $queryParts = explode('&', $query);
    $params = array();
    foreach ($queryParts as $param)  {
        $item = explode('=', $param);
        $params[$item[0]] = $item[1];
    }
    return $params;
}

/**
 * 将数组重组回URL
 * @param    array    数组
 * @return   array   URL字符串
 */
function getUrlQuery($array_query){
    $tmp = array();
    foreach($array_query as $k=>$param){
        $tmp[] = $k.'='.$param;
    }
    $params = implode('&',$tmp);
    return $params;
}



